package com.tianma315.core.common.utils;


//                   _ooOoo_
//                  o8888888o
//                  88" . "88
//                  (| -_- |)
//                  O\  =  /O
//               ____/`---'\____
//             .'  \\|     |//  `.
//            /  \\|||  :  |||//  \
//           /  _||||| -:- |||||-  \
//           |   | \\\  -  /// |   |
//           | \_|  ''\---/''  |   |
//           \  .-\__  `-`  ___/-. /
//         ___`. .'  /--.--\  `. . __
//      ."" '<  `.___\_<|>_/___.'  >'"".
//     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
//     \  \ `-.   \_ __\ /__ _/   .-` /  /
//======`-.____`-.___\_____/___.-`____.-'======
//                   `=---='
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//         佛祖保佑       永无BUG

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 密码加密工具（spring security 加密工具）
 * <p>
 * Created by zcm on 2018/5/14.
 */
public final class PasswordUtils {

    private static final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();


    private PasswordUtils() {
    }

    /**
     * 获取加密工具实例
     *
     * @return
     */
    public static BCryptPasswordEncoder getPasswordEncoder() {
        return passwordEncoder;
    }

    /**
     * 密码加密
     *
     * @param password
     * @return
     */
    public static String encode(String password) {
        return getPasswordEncoder().encode(password);
    }

    /**
     * 密码校验
     *
     * @param rawPassword     未加密过的密码
     * @param encodedPassword 已加密过的密码
     * @return
     */
    public static boolean matches(String rawPassword, String encodedPassword) {
        return getPasswordEncoder().matches(rawPassword, encodedPassword);
    }

    /**
     * 系统默认生成的密码
     *
     * @return
     */
    public static String defaultPassword() {
        return encode("111111");
    }

    public static void main(String[] args) {
        System.out.println(defaultPassword());
    }


}
